'use strict';

const tools = require('./src/main');

//验证类
/**
,empty   		是否为空
,isNum  		是否数字
,isAlpha 		是否全是字母
,isChinese		是否全是中文
,length			长度限制length(str,start,end)
,isAlphaNum		是否字母和数字
,isPhone		是否手机号
,isCardId		是否身份证号
,isObj 			是否对象
,checkIdentity  严格检测身份证号
,isMobile		是否手机访问
,isAndroid 		是否安卓手机
,isTel 			是否固定电话
,isQQ 			是否qq号码
,isEmail 		是否邮箱
,isURL 			是否是网址 http/https
,isArray 		是否数组
,inArray 		是否在数组里inArray(arr,val)
,isFunction 	是否函数
,isset 			变量是否定义
**/


//时间处理函数
//time 		获取时间戳(秒)
console.log(tools.time()); //1569032611
//date 		时间戳转日期
console.log(tools.date('Y-m-d H:i:s',tools.time())); //2019-09-21 10:24:24
//strToTime 日期转时间戳
console.log(tools.strToTime('2019-11-11')); 	//1573430400
//monthDay	获取某月有多少天
console.log(tools.monthDay('2019-11-11'));		//30
//yearDay	判断某年有多少天
console.log(tools.yearDay('2019-11-11'));		//365
//yearFirstDay	获取一年的第一天
console.log(tools.yearFirstDay('2019-11-11'));	//2019-01-01 00:00:00
//yearLastDay 	获取一年的最后一天
console.log(tools.yearLastDay('2019-11-11'));	//2019-12-31 23:59:59
//dateToYearDay	获取某个日期是当年中的第几天
console.log(tools.dateToYearDay('2019-11-11')); //315
//dateToYearWeek 获取某个日期在这一年的第几周
console.log(tools.dateToYearWeek('2019-11-11')); //45
//isLeapYear 判断是否润年
console.log(tools.isLeapYear('2019-11-11'));	//false


//身份证号处理函数
let idcardno = '442525520226131';
//getGender  	获取性别
console.log(tools.getGender(idcardno)); //男
//getBorn		获取出生日期
console.log(tools.getBorn(idcardno)); 	//2001-04-08
//getAge		获取年龄
console.log(tools.getAge(idcardno));	//18
//getStarsign	获取星座
console.log(tools.getStarsign(idcardno)); //白羊座
//getZodiac		获取生肖
console.log(tools.getZodiac(idcardno));	//蛇
//repairIdentity 17位身份证号码自动补全
console.log(tools.repairIdentity(idcardno)); //510722200104087896
//isIdentity 	严格的身份证号码验证
//[true 正确 -1 身份证地区非法 -2 您输入的身份证号码有误 -3 身份证号码位数不对 -4 请查看控制台错误信息]
console.log('验证:',tools.checkIdentity(idcardno)); //true
console.log(tools.isPhone('19950061234'));


//常用工具类
//md5 加密
console.log(tools.md5('xxx'));						//f561aaf6ef0bf14d4208bb46a4ccb3ad
//appResult 统一返回值
console.log(tools.appResult('SUCCESS',null,false,0));//{ info: 'SUCCESS', data: null, err: false, error: 0 }
//base64_encode 加密
console.log(tools.base64_encode('hello world'));	//aGVsbG8gd29ybGQ=
//base64_decode 解密
console.log(tools.base64_decode('aGVsbG8gd29ybGQ='));//hello world
//szjcompile    自定义加密函数
console.log(tools.szj_encode({username:'szjcomo',age:100,child:[{username:'como',age:18}]}));
//fzKkc3SmJkq8JoW{[YKvZX2mJkpjd4qrZ3:uczJtJnGo[TJ7NUBxMDKkbHmt[DJ7X4tjeYOmdn6icXVjPjKkc32wJjxjZXemJkpyPI2egY1>
//szjuncompile  自定义解密函数
console.log(tools.szj_decode('fzKkc3SmJkq8JoW{[YKvZX2mJkpjd4qrZ3:uczJtJnGo[TJ7NUBxMDKkbHmt[DJ7X4tjeYOmdn6icXVjPjKkc32wJjxjZXemJkpyPI2egY1>'));
/*
{
  username: 'szjcomo',
  age: 100,
  child: [ { username: 'como', age: 18 } ]
}
 */


//mt_rand 获取随机数
console.log(tools.mt_rand(100000,999999));			//990884
//rand_str 获取随机字符串
console.log(tools.rand_str(10));					//o3Bftoqym3
//strlen  获取字符串长度
console.log(tools.strlen('我是中国人szjcomo'));		//17
//trim  去除字符串首尾空
console.log(tools.strlen(tools.trim(' szjcomo ')));  //7
//recursion 递归函数
let data = [
	{name:'四川省',id:1,pid:0},
	{name:'绵阳市',id:2,pid:1},
	{name:'三台县',id:3,pid:2},
	{name:'广东省',id:4,pid:0},
	{name:'河源市',id:5,pid:4},
	{name:'源城区',id:6,pid:5}
];
let r = tools.recursion(data,0);
console.log(tools.json_encode(r));
/**[{"name":"四川省","id":1,"pid":0,"child":[{"name":"绵阳市","id":2,"pid":1,"child
":[{"name":"三台县","id":3,"pid":2,"child":[]}]}]},{"name":"广东省","id":4,"pid"
:0,"child":[{"name":"河源市","id":5,"pid":4,"child":[{"name":"源城区","id":6,"pi
d":5,"child":[]}]}]}]*/

//recursiveInversion 递归反转函数
console.log(tools.recursiveInversion(r));
/*
[
  { name: '四川省', id: 1, pid: 0, child: [ [Object] ] },
  { name: '绵阳市', id: 2, pid: 1, child: [ [Object] ] },
  { name: '三台县', id: 3, pid: 2, child: [] },
  { name: '广东省', id: 4, pid: 0, child: [ [Object] ] },
  { name: '河源市', id: 5, pid: 4, child: [ [Object] ] },
  { name: '源城区', id: 6, pid: 5, child: [] }
]
 */

let arr = [7,6,5,1,8,9,2,3,9];
//arraySort 	数组排序
console.log(tools.arraySort(arr));//[1, 2, 3, 5,6, 7, 8, 9, 9]
//arrayUnique 	数组去重
console.log(tools.arrayUnique(arr)); //[1, 2, 3, 5,6, 7, 8, 9]
//arrayRemove 	数组删除元素
console.log(tools.arrayRemove(arr,5)); //[1, 2, 3, 6,7, 8, 9, 9]
//arrayMax      数组求最大值
console.log(tools.arrayMax(arr)); //9
//arrayMin 		数组求最小值
console.log(tools.arrayMin(arr)); //1
//arraySum      数组求和
console.log(tools.arraySum(arr)); //45
//arrayAvg		数组求平均值
console.log(tools.arrayAvg(arr)); //5.625
//strCase 		字符串转大小写函数
//type [ 1:首字母大写  2：首页母小写  3：大小写转换  4：全部大写  5：全部小写]
console.log(tools.strCase('szjcomo',4)); //SZJCOMO 
//numberToChinese 数字转中文
console.log(tools.numberToChinese(123456789)); //一億二仟三百四十五萬六仟七百八十九
//changeToChinese 数字转金额中文
console.log(tools.changeToChinese(123456789)); //壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元整

